查看原文
其他

死磕了老半天,终于读懂了数据编织(Data Fabric) by 傅一平

傅一平 与数据同行 2023-12-17

Gartner发布的2022年重要战略技术趋势,Data Fabric(数据编织)赫然在列,这个概念现在挺火的,国内国外甚至有了相关产品,但数据编织这个概念并不是那么好理解。


假如要跟老板解释这个新概念,我是完全没信心的,虽然Gartner也做了解释,但过于抽象,各种概念乱飞,什么主动元数据,活动元数据,知识图谱等等,各个厂家也是你方唱罢我登场,都在基于自己的产品能力诠释着对数据编织的理解,让更多的人看得云里雾里。


我们首先看看业界是如何定义数据编织的,然后给出我的通俗易懂版本。


1)Gartner


Gartner将Data Fabric定义为包含数据和连接的集成层,通过对现有的、可发现和可推断的元数据资产进行持续分析,来支持数据系统跨平台的设计、部署和使用,从而实现灵活的的数据交付,其能力架构如下:



2)Forrester


Forrester提出了Big Data Fabric的概念,Big Data Fabric的最佳之处在于它能够通过利用动态集成、分布式和多云架构、图形引擎、分布式和持久内存等方面的能力来快速交付应用,其专注于自动化流程集成、转换、准备、管理、安全、治理和编排,以快速启用分析和洞察力,实现业务成功。其能力架构如下:



3)IBM


IBM认为Data Fabric的核心是一个数据管理平台,通过包括发现、治理、管理和编排在内的、全面的集成数据管理功能 ,实现“在正确的时间,从任意位置,将正确的数据与正确的人连接起来,从而全面释放数据价值,加速企业的数字化转型”的目标。Cloud Pak for Data 是IBM开发的具有数据管理、监管和分析功能的Data Fabric平台,如下图。



4)Talend


Talend认为Data Fabric是结合了AI能力的自动化数据集成平台。Talend的Data Fabric平台是由其数据集成平台发展而来,囊括了诸如大数据、机器学习、数据治理和 数据API等产品,将数据集成、数据治理以及数据运营统一在一个平台中,该平台架构示意图如下所示:



5)Denodo


Denodo在Data Fabric的能力定义上,更多的是追从了Forrester的能力定义,包括了数据摄取、处理和持久化、编排、数据发现、数据管理和智能以及数据访问等6类能力,不再赘述,但需要指出的是,其在数据发现能力上特别强调了数据虚拟化的能力,认为其是数据发现的关键能力。另外也强调了数据访问能力的重要性,直接将数据提供给数据分析工程师或者基于系统、工具或者可视化方式提供。denodo平台具体的能力架构图如下:



以上乱花渐欲迷人眼的定义和产品一定会把大多数人带进沟里,下面,我就来谈谈自己对于数据编织的本质理解,费曼说,只有能通俗易懂的向别人解释清楚概念,才说明你真懂了,希望我的解释能让你满意,否则,就是我的问题。


1、数据编织的背景


(1)数据是企业数字化转型不可或缺的元素,随着数字化的持续推进,数据源以及数据量不断增加,数据和应用孤岛的数量在过去几年中激增。


(2)业务数据格式由原来的结构化数据为主,逐步改变为由混合、多样和不断变化的数据主导(结构化、半结构化、非结构化等),业务对于实时或事件驱动的数据共享等需求不断增长。


(3)企业上云成为一大趋势,混合数据环境下企业该如何跨平台、跨环境,以实时的速度收集、访问、管理、共享数据,从不断变化、高度关联、却又四处分散的数据中获得可执行洞见面临巨大的挑战。


(4)企业数据的管理和运营投入度不够,缺少体系化的数据领域建设,从而产生了大量的暗数据。


面对上述数据管理难题,企业必须使用一种新型的数据结构来应对企业数据资产日益加剧的多样化、分布式、规模、复杂性等问题。在这样的背景下,一种新兴的数据管理和处理方法——数据编织(Data Fabric)诞生了。


Gartner认为数据编织是一种跨平台的数据整合方式,它不仅可以集成所有业务用户的信息,还具有灵活且弹性的特点,使得人们可以随时随地使用任何数据,Gartner称,数据编织预计可缩短30%的集成设计时间、30%的部署时间和70%的维护时间。


2、数据编织的定义


数据编织是一种数据架构思想(而非一组特定的工具),其通过提供一种统一的方法来管理异构数据工具链,其能够将可信数据从所有相关数据源、以灵活且业务可理解的方式交付给所有相关数据消费者,从而提供比传统数据管理更多的价值。


数据编织这个名字取得挺贴切的,我们可以望文生义的去理解数据编织这个定义,如下图所示,把数据编织想象成一张虚拟的网,网上的每个节点就是一个 IT系统或者数据源。人的大脑里有成万上亿个神经元,他们连接在一起,以非常快的速度处理和传递信息。现代医学还无法解释这些信息是如何传递的,只能说是以一种虚拟的方式来连接。这里数据编织也一样,这张网并不能理解为一种点对点的连接,而是一种虚拟的连接,可以使数据在网上迅速流动并统一对外提供服务。



有人会问数据编织跟数据集成有什么区别,这是个好问题,数据集成是融合异构存储集合的数据并构造统一数据视图的过程,包括了数据合并、数据转换、数据清洗等,其专注于复制、移动数据,如ETL加工、数据同步等。


数据编织是一种架构思想,跟数据集成本来是无法直接比较的,但由于数据虚拟化是实现数据编织架构中的关键技术之一,因此可以比较下数据虚拟化和数据集成的区别,数据虚拟化可以在不移动数据的情况下从源头访问数据,通过更快、更准确的查询帮助缩短实现业务价值的时间,具体包括跨平台敏捷集成、统一语义、低代码创建数据API(支持SQL、REST、OData和GraphQL等技术)、智能缓存加速等功能,数据虚拟化跟数据集成还是有本质区别的,假如没有虚拟化能力,数据是很难编织起来的,当然,数据编织远远超越了数据虚拟化的范畴,这个后面会解释。


可能还有人会问数据编织跟数据湖有什么区别,其实数据湖只是数据编织的异构数据源之一(数据源可以是数据仓库、数据湖,也可以是业务数据库等其他数据存储),数据编织将应用程序与数据湖(或者数据仓库等)进行连接,通过统一的数据管理框架支持在分布式的环境中进行数据消费。


3、数据编织的实现


要达到数据编织的目的,需要具备以下五个能力:


第一、数据编织可以连接各种数据源。


数据源的类型可以是数据库、数据仓库、数据湖、BI、应用系统或者文档等等,这些资源可能存在于企业内部,例如企业的ERP系统、CRM系统或人力资源系统 。还可以连接到非结构化数据源,例如,支持 PDF 和屏幕截图等文件提交系统,支持物联网传感器的接入,数据编织还可以从公共可用数据(如社交媒体)等外部系统中提取数据。


第二、数据编织需要有灵活的数据目录。


首先数据编织最好能自动的识别和获取元数据,比如数据库中的schema。


其次,能够基于ML/AI能力对数据的语义进行分析,打上数据的标签,从而加深对数据的业务理解,比如针对文档进行语主题分析给出分类,又比如针对关键字段的数据进行分析给出枚举的说明,再比如通过字段的上下文智能判断敏感级别。


最后,基于元数据构建知识图谱,即将碎片化的元数据有机的组织起来(比如建立关系和对象), 让数据目录更加容易被人和机器理解和处理,并为搜索、挖掘、分析等提供便利,为后续AI的实现提供知识库的基础。


下图是知识图谱的一个示例,你可以认为节点“数学家”是数据湖A的某个文档的主题,然后“数学家”和“图灵”是数据湖B的某个文档的主题,通过知识图谱就可以把A和B的相关文档连接起来,通过知识图谱让我们对于数据之间的关系有了更清晰直观的认识。



第三、基于知识图谱实现设计和分析智能


知识图谱有两大作用。


第一,可以快速的进行数据集成设计,比如实现源端连接配置、源端表和字段等信息的快速检索和自动填充,使其更加直观和易于解释。


第二、可以进行数据的智能推荐,比如基于数据的历史使用情况进行推荐,也就是把正确的数据,在正确的时间里,给到正确的人。


知识图谱在商业推荐领域应用的已经比较广泛,把它移植到数据连接领域就成了新鲜玩意,我们以前的数据集成设计主要是“人找数据”,而数据编织设计的核心是“数据找人”,以前对这句话不太能理解,现在终于明白它在讲什么。


第四、实现数据的动态集成和自动编排


有了前面的基础,数据的动态集成就成了可能,动态数据集成技术包括本体技术和网格技术。


网格技术原理比较简单,就是能够支撑各种数据源之间的数据交换、共享和协同计算,能够进行跨数据源的数据集成,比如用一个SQL直接跨数据源进行数据融合计算,现在有人在提NOETL,估计就是指这个吧。


本体技术比较复杂,这里举一个例子[1]就明白了:


以车管所数据为例,通过车管所的数据可以建立一种人-车-罚单的本体模型,人与车之间为拥有关系;人与罚单之间通过“闯红灯”事件相连接,而罚单本身则以文档的形式展现。完成本体模型后,就实现了基于元数据的知识图谱,如下图所示:



接下来,就需要将真实的数据映射到本体模型上。同时,要在字段级别上对多源异构数据进行归一化。还以车管数据为例,具体过程如下图所示,可以看出,通过本体映射将车管所3张表的数据映射到了 7个本体上(2个实体、3个关系、1个事件和1个文档),并将车主名称和姓名进行了统一,将日期的不同表示方式进行了归一化。



通过以上建模过程,在应用侧就建立了一个多源数据的统一的逻辑视图,即从分析人员的角度对所有数据构建成了一个图模型,分析人员无需关注底层数据源差异和存储细节,只需关注如何在此图模型上进行集成设计即可,任何数据要集成进来,先进行以上过程,在元数据层面进行拉通、融合。


这个集成具有动态的特点,核心逻辑就在于采用元数据与存储分离查询的方案,来赋予知识图谱“动态”特性,比如当表字段发生变更时,直接更改与元数据的映射关系就可以了,在应用端不需要重新导入数据。


动态数据集成兼容各种数据集成方式,包括但不限于 ETL、流式传输、复制、消息传递和数据虚拟化或数据微服务等。同时,支持通过 API 支持与内部和外部利益相关者共享数据。


由于数据集成的工作量非常大,因此数据自动化编排变得非常重要,因为数据编排可以简化和优化数据集成的流程,能够自动执行工作流的不同步骤,比如将数据采集、清洗及转换任务进行串接和自动执行,现在大多数ETL软件都具备可视化的编排能力。


第五、面向消费者提供自助能力


数据编织面向所有类型的数据用户,提供数据和服务,包括:数据科学家、数据分析师、数据集成专家、数据工程师等,既能够面向专业的IT 用户的复杂集成需求处理,也可以支持业务人员的自助式数据准备和分析。


说完了以上内容,相信你马上能看懂Gartner放出的下面这张数据编排英文架构图,但当我第一次看到时,可是有点云里雾里,因为充斥了太多的概念和关系,无论是数据目录、知识图谱、激活元数据、主动元数据,AI/ML、动态数据集成还是自动数据编排等等。



应该来讲,数据编织有很多不错的设计思想,读懂了以后,你会发现这些思想既陌生又熟悉,陌生是因为新的名词,熟悉是里面其实没有什么新东西,比如我们正在做的一键入湖,就是一种基于元数据来进行自动化集成设计的实践,这就是一种数据编织,可惜我们不会造词。Gartner编排了很多概念在一起让大家觉得这是一个新体系,当然这的确也是一种组合创新。


但说实话,数据编织离我们大多数公司还是有点远。


比如数据编织希望解决分布式数据源出现导致的数据孤岛问题,但实际上大多数公司没有那么多的分布式数据源,数据孤岛问题主要还是企业的管理问题,利用数据编织去解决数据孤岛问题,是纯粹的技术思维,很难解决当前大多数公司的实际数据孤岛问题,大家还是先老老实实去做数据治理吧。


又比如说数据编织的基础是元数据,但元数据的缺失恰恰是现在大多企业最大的痛点,这极大限制了数据编织的价值,一键入湖其实我们10年前就想做了,但为什么现在才能做出来,因为那个时候源端不愿意提供全量元数据或者提供不出来或者提供的质量太差,这是由企业的基础数据管理水平决定的,而缺失了元数据的数据编织就成了空中楼阁。


数据编织有点像当年的数据中台,炒作了数据中台这个概念后让数据仓库有了更好的演进,但数据编织估计更难一点,因为很难让老板理解。


如果老板问我这个概念,也许我会这么解释数据编织,即“基于知识图谱的分布式数据智能集成、编排和自助数据服务”,然后逐个解释清楚知识图谱、分布式、集成、编排、智能及自助等概念,这里故意不提元数据,大家都懂的,但我其实还是没啥信心的。


参考文献

[1] 百分点认知智能实验室  基于动态知识图谱的大规模数据集成技术 202005




    浅谈数据仓库建设中的数据建模方法

    怎样画一张人见人爱的系统架构图

    甲方彻底蚌埠住了:吃完数仓的亏,又上数据湖的当?

    数仓建模分层理论

    阿里大淘系模型治理阶段性分享

    数仓建模—宽表的设计

    5000字详解数据模型设计方法

    查看全部文章


    点击“阅读原文”查看更多精彩文章,公众号推送规则变了,如果您想及时收到推送,麻烦右下角点个在看或者把本号置顶 

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存